The present invention relates to a scheme for detecting and correcting random glitches that can cause erroneous capture of strobed data in a computing system.
FIG. 1 illustrates a modern computing system in which a plurality of agents 110-160 exchange data over a communication bus 170. An xe2x80x9cagentxe2x80x9d can be any component of the computing system that can transmit or receive data via the communication bus. Conventional agents include processors, memory controllers, peripheral devices, bus interface units, digital signal processors and, possibly, application specific integrated circuits. While the architectures and protocols used by communications buses may vary, each typically achieves a data transfer when a first agent drives electrical signals representing the data on the communication bus 170 and a second agent captures the signals.
xe2x80x9cStrobed dataxe2x80x9d refers to a manner of driving electrical data signals on the communication bus 170. As illustrated in FIG. 2, data may be driven on a communication bus during data windows, each having a predetermined duration. At the conclusion of each of these data windows, the data is changed to set up for a succeeding data window. While the onset of the each data window is known, it cannot be guaranteed that the data for a particular data window will be stable at the onset. Variations in propagation distances along the communication bus and variations in bus design can affect the time that it takes to establish valid data at a data receiver. Thus, the timing of the data window at a receiving agent may differ from the timing of the same data window at a transmitting agent.
A strobed data bus accommodates for these variations by having the driving agent generate a strobe signal, typically in the middle of the data window. A receiving agent captures data when it detects a predetermined change in the strobe signal. Strobed data buses are advantageous because the variances in propagation distance and bus design that affect the timing of data signals also should be replicated in the strobe signal. Valid data should be present at the receiving agent when the receiving agent receives the strobe.
FIG. 2, on graph (a), illustrates an example of a dual strobe system. Each driving agent generates two differential strobe signals, STB P and STB N. The strobe signals are the same signal but delayed with respect to each other by the duration of a data window. In the example of FIG. 1, a receiving agent captures data when either strobe signal crosses a predetermined threshold as it transitions from a high state to a low state. Thus, data would be captured at times t1-t6. Other strobe systems are known.
Strobe signals can be subject to glitches. Glitches represent random voltage changes in a signal that are caused for various well-known reasons, including voltage spikes, ring-backs, ground bounces, power sag and cross-talk. When glitches occur on a strobe signal, they are fatal to system operation because they cause a receiving agent to capture invalid data. For example, glitches are shown in graph (b) of FIG. 2, occurring at times t7 and t8. At time t7, the glitch would cause a receiving agent to capture data even though erroneous data may be present on the bus. At time t8, a glitch causes a xe2x80x9cdouble capturexe2x80x9d of valid data. The capture of a second copy of valid data at time t8 causes system failure in the same way as the capture of invalid data at time t5.
Accordingly, it is desired in the art to protect receiving agents from glitches that may occur in strobe signals. There is a need in the art to provide glitch correction systems in receiving agents. Further there is a need in the art to provide glitch detection systems in receiving agents that identify the occurrence of a glitch that cannot be corrected.
Embodiments of the present invention provide an agent for a processing system, in which a glitch protection circuit receives a strobe signal and a data receiver captures a data signal in response to an output from the glitch protection circuit.